Skip to content

Conversation

nikitar
Copy link
Member

@nikitar nikitar commented Oct 20, 2026

Formål

Refaktoreringen har som mål å forbedre separasjon av ansvar, gjenbrukbarhet, lesbarhet og vedlikeholdbarhet uten å endre applikasjonens grunnleggende funksjonalitet.

Endringer

  • Restrukturert frontend-arkitekturen

    • Opprettet components/common/ for felles, gjenbrukbare komponenter.
    • Flyttet Layout, Navigation og FeedbackCard til den nye strukturen.
    • Organisert ThreatActor-komponentene i catalog/ og detailed/.
    • Samlet ThreatActor-sidene under pages/ThreatActor/.
  • Opprettet gjenbrukbare UI-komponenter

    • Implementert en felles PageHeader for konsistent sidetittel og beskrivelse.
    • Implementert en felles SearchBar med støtte for søk og brukerdefinerte callbacks.
    • Erstattet tidligere ThreatActor-spesifikke komponenter med gjenbrukbare alternativer.
    • Oppdatert relevante sider og komponenter til å bruke den nye strukturen.
  • Refaktorert ThreatActor-katalogen

    • Flyttet state og event handlers fra ThreatActors.tsx til useThreatActorCatalog.ts.
    • Flyttet GraphQL-datainnhenting til useThreatActorCatalogQueries.ts.
    • Separert aktive søke- og filterverdier fra verdier brukeren fortsatt redigerer.
    • Beholdt søk, filtrering, sortering og paginering gjennom eksisterende GraphQL-integrasjon.
    • Forenklet ThreatActors.tsx slik at komponenten hovedsakelig håndterer presentasjon.
  • Refaktorert ThreatActor-detaljsiden

    • Opprettet useThreatActorDetail.ts for håndtering av paginering.
    • Opprettet useThreatActorDetailQueries.ts for uthenting av profilinformasjon, teknikker og programvarer.
    • Separert datainnhenting fra presentasjonslogikken i ThreatActorDetailed.tsx.
    • Implementert nullstilling av lokal state ved navigasjon mellom forskjellige Threat Actors ved hjelp av key={mitreId}.
  • Forbedret TypeScript-strukturen

    • Samlet ThreatActor-relaterte typer i ThreatActorTypes.ts.
    • Gruppért og dokumentert typene etter katalog, filtrering, detaljvisning, tilknyttede entiteter og GraphQL.
    • Flyttet ThreatActorFilterValues og DEFAULT_FILTERS ut av filterkomponenten.
    • Oppdatert importene slik at hooks og komponenter benytter felles typedefinisjoner.
  • Ryddet opp i prosjektstrukturen

    • Flyttet GraphQL-queryfilene direkte under graphql/.
    • Oppdatert importstier etter flytting og omorganisering av komponenter.
    • Fjernet ubrukte placeholder-filer, utdaterte oppsettfiler og enkelte gamle stilfiler.
    • Standardisert kodeformattering i store deler av frontend, inkludert CSS og TSX.
    • Oppdatert eksisterende komponenter på tvers av Home, Software, Tactics, Techniques og SavedItems.

Closes #87

@nikitar nikitar added the enhancement New feature or request label Oct 20, 2026
@nikitar nikitar requested a review from a team as a code owner October 20, 2026 14:27
@nikitar
Copy link
Member Author

nikitar commented Oct 21, 2026

@daniekba kan du se over?

Copy link
Member

@azclasen azclasen left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Det var en stor omorganisering. Bra jobbet!

@azclasen azclasen merged commit 16c059a into main Oct 21, 2026
Sign in to join this conversation on GitHub.
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Rydde opp strukturen i ThreatActor
2 participants